// 类的只读属性

export{}

class Person {//
    public name:string //
    private age:number//
    protected readonly gender:boolean //如果这个属性已经有访问修饰符的话，readonly要放在访问修饰符的后面，对于只读属性可以选择在类型声明的时候直接通过等号的方式去初始化，也可以在构造函数当中去初始化，两者只能选其一,初始化过后这个属性不能够再修改了，不管是内部还是外部
    constructor(name:string,age:number){
        this.name = name
        this.age = age
        this.gender = true
    }

    say(msg:string):void{
        console.log(`I am ${this.name},${msg}`)
        console.log(this.age)
    }
}

const tom = new Person('tom',18)
console.log(tom.name)
// tom.gender = false

